/**
 * Design a HashMap without using any built-in hash table libraries.
 * <p>
 * Implement the MyHashMap class:
 * <p>
 * <p>
 * MyHashMap() initializes the object with an empty map.
 * void put(int key, int value) inserts a (key, value) pair into the HashMap. If
 * the key already exists in the map, update the corresponding value.
 * int get(int key) returns the value to which the specified key is mapped, or -1
 * if this map contains no mapping for the key.
 * void remove(key) removes the key and its corresponding value if the map
 * contains the mapping for the key.
 * <p>
 * <p>
 * <p>
 * Example 1:
 * <p>
 * <p>
 * Input
 * ["MyHashMap", "put", "put", "get", "get", "put", "get", "remove", "get"]
 * [[], [1, 1], [2, 2], [1], [3], [2, 1], [2], [2], [2]]
 * Output
 * [null, null, null, 1, -1, null, 1, null, -1]
 * <p>
 * Explanation
 * MyHashMap myHashMap = new MyHashMap();
 * myHashMap.put(1, 1); // The map is now [[1,1]]
 * myHashMap.put(2, 2); // The map is now [[1,1], [2,2]]
 * myHashMap.get(1);    // return 1, The map is now [[1,1], [2,2]]
 * myHashMap.get(3);    // return -1 (i.e., not found), The map is now [[1,1], [2,2
 * ]]
 * myHashMap.put(2, 1); // The map is now [[1,1], [2,1]] (i.e., update the
 * existing value)
 * myHashMap.get(2);    // return 1, The map is now [[1,1], [2,1]]
 * myHashMap.remove(2); // remove the mapping for 2, The map is now [[1,1]]
 * myHashMap.get(2);    // return -1 (i.e., not found), The map is now [[1,1]]
 * <p>
 * <p>
 * <p>
 * Constraints:
 * <p>
 * <p>
 * 0 <= key, value <= 10⁶
 * At most 10⁴ calls will be made to put, get, and remove.
 * <p>
 * <p>
 * Related Topics 设计 数组 哈希表 链表 哈希函数 👍 341 👎 0
 */


package com.xixi.basicAlgroithms.hash;

public class ID00706DesignHashmap {
    public static void main(String[] args) {
        MyHashMap myHashMap = new ID00706DesignHashmap().new MyHashMap();
    }


    //leetcode submit region begin(Prohibit modification and deletion)
    class MyHashMap {

        int[] mapArray;

        public MyHashMap() {

            mapArray = new int[1000001];
            for (int i = 0; i < 1000001; i++) {
                mapArray[i] = -1;
            }
        }

        public void put(int key, int value) {
            mapArray[key] = value;
        }

        public int get(int key) {
            return mapArray[key];
        }

        public void remove(int key) {
            mapArray[key] = -1;
        }
    }

/**
 * Your MyHashMap object will be instantiated and called as such:
 * MyHashMap obj = new MyHashMap();
 * obj.put(key,value);
 * int param_2 = obj.get(key);
 * obj.remove(key);
 */
//leetcode submit region end(Prohibit modification and deletion)


}